// 所有调用接口的代码都写到这里
import axios from 'axios'
import store from './store'
import { Message } from 'element-ui'

export const BASEURL = 'http://120.53.31.103:84/api'

// 配置基地址
axios.defaults.baseURL = BASEURL
// http://120.53.31.103:84/api/coupon?page=1&limit=10&name=&grant=&receive_type=0&
// 添加前置拦截器
axios.interceptors.request.use(
  function(config) {
    // 从 vuex 中取出令牌
    if (store.state.user) {
      config.headers.Authorization =
        'Bearer ' + store.state.user.remember_token
    }
    return config
  },
  function(error) {
    // 异步的要想返回必须转成 Promise
    return Promise.reject(error)
  }
)

// 添加后置拦截器
axios.interceptors.response.use(
  function(config) {
    // 当网络请求成功时
    if (config.data.code !== 200) {
      Message.error(config.data.msg)
      return false
    }
    return config.data
  },
  function(error) {
    // 当网络请求失败（断网）
    Message.error('请求连接失败！（网络原因）')
    return Promise.reject(error)
  }
)

// 登录函数
export function login(mobile, password) {
  return axios.post('/adminUser/login', {
    // mobile: mobile,
    // password: password 可以简写为下面
    mobile,
    password
  })
}
export function kkk(mobile, password) {
  return axios.post('/coupon?page=1&limit=10&name=&grant=&receive_type=0&', {
    // mobile: mobile,
    // password: password 可以简写为下面
    mobile,
    password
  })
}

// 题库管理数据
export function question(page, limit, name, uld, classify) {
  return axios.get('/ques/bank', {
    classify
  })
}
// 题库管理删除
export function del(id) {
  return axios.delete(`/ques/bank/${id}`)
}

// 获取菜单,把数据缓存到本地，除非关闭浏览器否则这些数据都从浏览器本地获取
export function getMenus() {
  // 从浏览器中获取数据
  let cache = store.state.cache.menu
  // 判断本地浏览器中是否已经有这些数据了
  if (cache) {
    // 反序列化成对象
    cache = JSON.parse(cache)
    // 为了和下面返回的数据类型相同 ，所以也转成 Promise
    return Promise.resolve(cache)
  } else {
    // 调用接口获取数据，并把数据缓存到浏览器中
    return axios.post('/menu/info').then(res => {
      // 缓存起来
      store.commit('set_menu_cache', res.rows)
      // 这里是异步的，要想返回必须转成 Promise 对象
      return Promise.resolve(res.rows)
    })
  }
}

// 题库分类数据
export function ment() {
  return axios.get('/ques/classify?name=&')
}
// 删除考点
export function dell(id) {
  return axios.delete(`/ques/classify/${id}`)
}
// 考点管理数据
export function point() {
  return axios.get('/exam/point?name=&')
}
// 获取学员列表
// query：对象，{page:1,limit:32:status....}
export function getStudents(query) {
  return axios.get('/user', {
    params: query
  })
}
// 获取课程统计列表
export function getCourse() {
  return axios.post('course/statics')
}

export function getCourseKe() {
  return axios.get('config/other_setting')
}

export function getteach() {
  return axios.post('/teacher/statics')
}

// 获取优惠券管理列表  coupon
export function getCoupon(query) {
  return axios.get('/coupon', {
    params: query
  })
}

export function studyCard(query) {
  return axios.get('/studyCard', {})
}
// 进入页面请求所有数据
export function getBanner(query) {
  return axios.get('/informationClassify', {
    params: query
  })
}

// 编辑
export function getBanners(query, it) {
  return axios.put('/informationClassify/' + query, it)
}

// 删除
export function getBanne(query) {
  return axios.delete(`/informationClassify/${query}`)
}

// 新增
export function add(query) {
  return axios.post('/informationClassify', query)
}

// // GET
// // 方式一
//   return axios.get('/api/user', {
//     params: {
//       page: 1,
//       limit: 10,
//     }
//   })
// // 方式二、
// return axios.get('/api/user?page=1&limit=1&xx=')

// // POST 传参数
// return axios.get('/api/user', {
//   page: 1,
//   limit: 10,
// })

export * from './api/api1'
export * from './api/api2'
export * from './api/api3'
export * from './api/api4'
export * from './api/api5'
export * from './api/api6'
export * from './api/api7'
export * from './api/api8'
